#include <vcl.h>
#pragma hdrstop

#include "PlatoDonut.h"
#include <gl\glaux.h>

//---------------------------------------------------------------------------

#pragma package(smart_init)

PlatoDonut::PlatoDonut(GLdouble radioInterior, GLdouble radioExterior, GLint numLados, GLint  numAnillos){
        this->radioInterior = radioInterior;
        this->radioExterior = radioExterior;
        this->lados = numLados;
        this->anillos = numAnillos;
        this->cuadrica = gluNewQuadric();
}

void PlatoDonut::dibuja(){
//Coger matriz actual
    GLfloat mm[16];
    glGetFloatv(GL_MODELVIEW_MATRIX,mm);
    TAfin* m = new TAfin(mm);
    glColor3f(0,0,255);
    // Aplicar matriz de transformacion
    glPushMatrix();
      m->postMultiplicar(marco);
      glLoadMatrixf(m->mat);

   gluQuadricDrawStyle(cuadrica, GLU_FILL);
   glColor3f(255,0,0);
                //auxSolidTorus( radioInterior, radioExterior);
                 glColor3f(0,0,255);
                 // http://www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/glu/disk.html
                gluDisk(cuadrica, radioInterior,radioExterior, lados, anillos);
 glPopMatrix();

}
